package com.mnyc.system.enmu.system;

import cn.hutool.core.util.StrUtil;
import org.springframework.util.Assert;

import java.util.Arrays;

public interface DictEnum {
    String getCode();

    default Boolean isEqualsTo(String code) {
        return getCode().equals(code);
    }

    static <T extends DictEnum> T baseGetByCode(Class<T> cls, String code) {
        Assert.isTrue(StrUtil.isNotBlank(code), "code不能为空");
        return Arrays.stream( cls.getEnumConstants())
                .filter(item -> item.getCode().equals(code))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException("找不到对应的类型枚举值: " + code));
    }
}

